import * as userHub from "./user";
import * as emailHub from "./email"
import { ElNotification } from 'element-plus'


// SignalR 初始化函数
const initSignalR = async () => {
    try {
        // 启动所有 Hub 连接
        await Promise.all([userHub.startConnection()]);
        console.log("所有实时通信已启动");

        // 监听 UserHub 事件
        userHub.onUserConnected((userId) => {
            var msg = `用户${userId}已上线`
            ElNotification({
                title: '上线提醒',
                message: msg,
                position: 'bottom-right',
            })
            console.log("用户已上线:", userId);
            // 可以添加事件分发逻辑，比如调用 Pinia/Vuex
        });

        userHub.onUserDisconnected((userId) => {
            var msg = `用户${userId}已掉线`
            ElNotification({
                title: '掉线提醒',
                message: msg,
                position: 'bottom-right',
            })
            console.log("用户断开连接:", userId);
            // 可以添加事件分发逻辑
        });

        emailHub.addReciveEmailListener();

        // userHub.onUserSignOn((userId) => {
        //     var msg = `用户${userId}登录成功`
        //     ElNotification({
        //         title: '登录提醒',
        //         message: msg,
        //         position: 'bottom-right',
        //     })
        // })

        // // 监听 ChatHub 事件
        // chatHub.onNewMessage((message) => {
        //     console.log("New message received:", message);
        //     // 可以添加事件分发逻辑
        // });
    } catch (err) {
        console.error("SignalR 初始化异常:", err);
    }
};

// 停止所有 Hub 的函数（如果需要手动停止时调用）
const stopSignalR = async () => {
    try {
        await Promise.all([userHub.stopUserHub(), chatHub.stopChatHub()]);
        console.log("All SignalR hubs stopped");
    } catch (err) {
        console.error("Error stopping SignalR:", err);
    }
};

// 自动初始化 SignalR
initSignalR();


export default {
    initSignalR,
    stopSignalR,
};
